<script>
let obj={};
let a=null;
({a}=obj)
// 对象对应的undefined取默认值
const person=[{name:'a'},{name:'b',job:'工程师'},{name:'c',job:'网红'},{name:'d',agr:20,job:'运动员'}]
person.map(function(person){
    // const {name,job='学生'}
})

// 函数解构

function add([x,y]){
    return x+y
}
add([100,200])

// [[1,2],[3,4]].map(function(a,b){
//     return [a,b]
// })

//箭头函数
// 为什么需要默认参数？

function getHeight(unit='px',height){
    return height+unit
}
getHeight(undefined,10)//显式传入undefined

function sum(){
    //arguments转成数组[...arguments]
//    console.log([...arguments]);
return [...arguments].reduce(function(acc,n){

 return acc+n

},0)

}
sum(1,2,3,123,345)

function log(type){

  const strs=Array.prototype.slice.apply(arguments,[1])
  console.log.apply(null,[`[${type}]`,...strs]);
}
log('警告','const变量不能重复赋值',new Date().toTimeString())

//...参数必须写结尾
function log(type,...strs){
console.log(`[${type}]`,...strs);
}
log('警告','const变量不能重复赋值',new Date().toTimeString())



</script>